Keyboard gestures for character string replacement

ABSTRACT

A computing device includes at least one processor and at least one module. The module may determine and output for display a list of one or more suggested character strings based on a first input received at a presence-sensitive display. The module may further receive an indication of a second user input detected at the presence-sensitive display. The module may further determine whether the second user input includes a replacement gesture, wherein the replacement gesture includes a first gesture in a substantially leftward direction and a second gesture in a substantially rightward direction. Responsive to determining that the received gesture input includes the replacement gesture, the module may output for display in place of the displayed text, a character string chosen from the list of one or more suggested character strings.

This application is a continuation of U.S. application Ser. No.13/742,223, filed Jan. 15, 2013, which claims the benefit of U.S.Provisional Application No. 61/721,672, filed Nov. 2, 2012, the entirecontent of which is hereby incorporated by reference.

BACKGROUND

Computing devices may provide users with the ability to interact withprocesses and data using a variety of input and output devicesoperatively coupled thereto and/or in communication therewith. Forexample, a computing device may include a presence-sensitive displaythat can detect the location of a touch or presence within apredetermined display area displayed at the presence-sensitive display.A user may thus provide input to the computing device by, for example,entering a touch, tap, or contact-less gesture at the presence-sensitivedisplay. The computing device may further present a graphical (or“soft”) keyboard on the presence-sensitive display that permits the userto enter data by selecting, via one or more gestures, one or more keysof the graphical keyboard. To delete one or more characters, the usermay touch or tap a backspace key included in the graphical keyboard toindicate that one or more displayed letters should be deleted.

SUMMARY

In one example, the disclosure is directed to a method comprisingreceiving, by a computing device, an indication of a first user inputdetected at a presence-sensitive display operatively coupled to thecomputing device, outputting, by the computing device and for display atthe presence-sensitive display, text based on the first user inputdetected at the presence-sensitive display, determining, by thecomputing device, a list of one or more suggested character stringsbased on the text, outputting, by the computing device and for displayat the presence-sensitive display, the list of one or more suggestedcharacter strings, receiving, by the computing device, an indication ofa second user input detected at the presence-sensitive display,determining whether the received gesture input includes a replacementgesture, wherein the replacement gesture includes a first gesture in asubstantially leftward direction and a second gesture in a substantiallyrightward direction, and responsive to determining that the receivedgesture input includes the replacement gesture, outputting, by thecomputing device and for display at the presence-sensitive display inplace of the displayed text, a character string chosen from the list ofone or more suggested character strings.

In another example, the disclosure is directed to a device comprising atleast one processor and at least one module operable by the at least oneprocessor to receive, by a computing device, an indication of a firstuser input detected at a presence-sensitive display operatively coupledto the computing device, output, by the computing device and for displayat the presence-sensitive display, text based on the first user inputdetected at the presence-sensitive display, determine, by the computingdevice, a list of one or more suggested character strings based on thetext input, output, by the computing device and for display at thepresence-sensitive display, the list of one or more suggested characterstrings, receive, by the computing device, an indication of a seconduser input detected at the presence-sensitive display, determine whetherthe received second user input includes a replacement gesture, whereinthe replacement gesture includes a first gesture in a substantiallyleftward direction and a second gesture in a substantially rightwarddirection, and responsive to determining that the received gesture inputincludes the replacement gesture, output, by the computing device andfor display at the presence-sensitive display in place of the displayedtext, a character string chosen from the list of one or more suggestedcharacter strings.

In another example, the disclosure is directed to a computer-readablestorage medium encoded with instructions that, when executed, cause atleast one processor of a computing device to perform operationscomprising receiving, by a computing device, an indication of a firstuser input detected at a presence-sensitive display operatively coupledto the computing device, outputting, by the computing device and fordisplay at the presence-sensitive display, text based on the first inputdetected at the presence-sensitive display, determining, by thecomputing device, a list of one or more suggested character stringsbased on the text, outputting, by the computing device and for displayat the presence-sensitive display, the list of one or more suggestedcharacter strings, receiving, by the computing device, an indication ofa second user input detected at the presence-sensitive display,determining whether the received second user input includes areplacement gesture, wherein the replacement gesture includes a firstgesture in a substantially leftward direction and a second gesture in asubstantially rightward direction, and responsive to determining thatthe received gesture input includes the replacement gesture, outputting,by the computing device and for display at the presence-sensitivedisplay in place of the displayed text, a character string chosen fromthe list of one or more suggested character strings.

The details of one or more examples are set forth in the accompanyingdrawings and the description below. Other features and advantages willbe apparent from the description and drawings, and from the claims.

BRIEF DESCRIPTION OF DRAWINGS

FIG. 1 is a conceptual diagram illustrating an example of a computingdevice for executing text replacement gestures, in accordance with oneor more aspects of the present disclosure.

FIG. 2 is a block diagram illustrating an example computing device forexecuting text replacement gestures, in accordance with one or moreaspects of the present disclosure.

FIG. 3 is a flowchart illustrating an example process for executing textreplacement gestures, in accordance with one or more aspects of thepresent disclosure.

DETAILED DESCRIPTION

In general, the disclosure is directed to techniques for textreplacement on a computing device such as a smartphone, tablet, personaldigital assistant (PDA), personal computer, or other computing device.Many text entry applications include software to assist the user duringtext input by performing various tasks such as spell checking, wordcompletion based on the first few letters of a word, and/or “predicting”a word or words the user intends to type. Such software may analyze thetext input based on spelling, syntax, grammar, frequency, recentness ofuse, etc., and may present a list of words or suggested characterstrings based on the analysis.

The techniques of the disclosure may enable a user to replace text inputusing one or more gestures entered at a user interface device (such as apresence-sensitive display) operatively coupled to the computing device.The one or more gestures will be referred to herein as a “replacementgesture.” Upon detection of a replacement gesture, the computing devicemay replace the text input with an alternative character string chosenfrom the list of suggested character strings. The replacement gesturetechniques may help to improve text entry speed, efficiency, and/oraccuracy.

The replacement gestures may include one or more sequential strokes, orsliding movements, across a user interface device such as apresence-sensitive display. For example, the replacement gesture mayinclude a first swipe across the display in a substantially leftwarddirection, and a second swipe across the display in a substantiallyrightward direction.

In one example, the computing device may replace the text input with thefirst or highest ranked character string in the list of suggestedcharacter strings. The term “character string” as used herein mayinclude, but is not limited to, one or more characters, a single word,multiple words, phrases, compound words (e.g., a lot), or any othercombination of characters. A “character string” may further includealpha-numeric characters such as letters and numbers, punctuation marks,symbols, emoticons, or any combination thereof.

FIG. 1 is a conceptual diagram illustrating an example of a computingdevice 2 having text replacement gesture functionality. Computing device2 may include one or more stand-alone devices or may be part of a largersystem. In certain examples, computing device 2 may include a mobiledevice. For example, computing device 2 may include or be part of awireless communication device (e.g., wireless mobile handset or device),a video telephone, smart phone, a digital multimedia player, a personaldigital assistant (PDA), a video game console, tablet PC, a laptopcomputer, a personal computer, e-book reader, or other computing device.In some examples, computing device 2 may communicate with other devicesvia one or more networks (not shown), such as one or more wired orwireless networks, including the Internet, a cell phone network, etc.

Example computing device 2 may include one or more processor(s) 6,storage device(s) 30, and a user interface device 8. User interfacedevice 8 may include a display that presents (outputs) information to auser 16, such as web page content, documents, text, video, applicationinterfaces, or any other type of information that may be displayed. Inone example, user interface device 8 may include a presence-sensitivedisplay that, in addition to output (display) capabilities, is alsoconfigured to detect the location of a touch or presence within apredetermined display area displayed at the presence-sensitive display.User 16 may initiate functionality of the device and input content byinteracting with the presence-sensitive display 8 or with various otheruser interface devices that may be provided by computing device 2.

In addition to display 8, computing device 2 may include other types ofuser interface devices that permit interaction between user 16 andcomputing device 2. For example, computing device 2 may also include oneor more of a keyboard, a mouse, a button, a touchpad, a track pad, atouch screen, a microphone, a camera, a speaker, a sound card, a videographics card, a light emitting diode (LED) or other visual indicator,etc.

Processor(s) 6 may include, for example, any one or more of amicroprocessor, a controller, a digital signal processor (DSP), anapplication specific integrated circuit (ASIC), a field-programmablegate array (FPGA), or equivalent discrete or integrated logic circuitry.Processor(s) 6 may be configured to implement functionality and/orprocess instructions for execution within computing device 2.

Storage device 30 may be configured to store information withincomputing device 2. Storage device 30 may, for example, be described asa computer-readable storage medium. Storage device 30 may storeinstructions for execution by processor(s) 6. Storage device 30 mayfurther store information or data used, received, or generated duringoperation of computing device 2.

Storage device 30 may store one or more computer-readable modules, suchas a replacement gesture module 10. Replacement gesture module 10includes instructions and data that, when executed by processor(s) 6,provides computing device 2 with text replacement gesture functionality.Further details concerning replacement gesture module 10 will bedescribed below.

Storage device 30 may further include other computer-readable modulesand applications that govern operation of computing device 2 (such as anoperating system) or permit a user to perform various functions usingcomputing device 2 (such as messaging applications, phone-basedapplications, games, music players, etc.). Storage device 20 may furtherstore data that is used, received, or generated during operation ofcomputing device 2.

During execution, one or more various modules or applications running oncomputing device 2 may implement, invoke, execute, or otherwise utilizereplacement gesture module 10 as a mechanism to provide text replacementgesture functionality. In general, replacement gesture module 10 may beused during any operation on computing device 2 during which text orother character data may be entered by a user. For example, a user of acomputing device may input text or characters to take notes, composeemails or text messages, input commands, make lists, compose documents,prepare programming language code, prepare web content, make posts tosocial networking services, and/or to perform other tasks involvingentry of text or other character data.

In the example of FIG. 1, computing device 2 may present an image, suchas example image 15A, on display 8. Image 15A may include, for example,a virtual (or “soft”) keyboard 20 and a text display area 16. Image 15Amay further include various other elements relevant to text entry.

In the example of FIG. 1, keyboard 20 is presented using a QWERTYkeyboard layout. However, it shall be understood that other keyboardlayouts and arrangements may also be used. For example, keyboard 20 maybe presented using a split keyboard layout, in which the keyboard issplit into two groups of virtual keys displayed at two different regionsof display 8. In other examples, one or more of the keys in keyboard 20or within image 15A may be moved, resized, or customized by the user.For example, computing device 2 may store different virtual key layouts,user preferences, and character choices that may be accessed forcustomizing the layout and/or the function of various keys on thekeyboard 20, or various elements of image 15A. In general, the size,shape, and/or arrangement of the keyboard 20 and/or image 15A are forpurposes of illustration only, and the disclosure is not limited in thisrespect.

Keyboard 20 may include virtual keys that represent letters of thealphabet, punctuation marks, a space bar 28, and/or other keys that maybe helpful for entering text or other characters. Keyboard 20 may alsoinclude one or more other virtual keys, such as a switch layout tonumber and symbols key 27, an enter key 29, a backspace key, a shiftkey, a switch languages key, a microphone key, or any other keyappropriate receiving user input on computing device 2.

Replacement gesture module 10 enables a user to replace text input (forexample, words, numbers, symbols, or any combination thereof) using oneor more replacement gestures entered at user interface device 8, such asa presence-sensitive display. In FIG. 1, for example, the user hasattempted to enter the word “life” on virtual keyboard 20. However, theuser has mistakenly entered the characters, “lifr.” The text input“life”, indicated by reference numeral 22, is displayed on computingdevice 2 in text display area 16 of image 15A.

In addition, computing device 2 may analyze the text input to generateand display a list of suggested character strings 23. This analysis ofthe text input may be performed using, for example, spell checking,auto-correct, word completion, word prediction, or other techniquesknown in the art. The list of suggested character strings 23 may includealternatives to the text input in an attempt to correct common spellingor typing errors, or may include a list of predictions based on entry ofthe first few letters of a word or words, for example. In some examples,the list of suggested character strings 23 may be presented in a rankedorder from the most probable (highest ranked) match to the text inputand then in descending order of relatively less probable (lower ranked)matches to the text input.

At some point during the text entry process, user 16 may decide toreplace the most recent text input, in this case the word “lifr” 22,with a word from the list of suggested character strings 23. To thatend, user 16 may execute a replacement gesture on presence-sensitivedisplay 8. In response to detection of the replacement gesture,computing device 2 may replace the text input with a character stringfrom the list of suggested character strings 23. The replacement gesturemay include one or more movements across the presence-sensitive displaythat computing device 2 interprets as a command to perform thereplacement function. For example, the user may execute a replacementgesture by sliding a finger or other input tool, such as a stylus, pen,brush, etc., across the presence-sensitive display in a predefinedpattern. In FIG. 1, for example, the replacement gesture (referred togenerally as replacement gesture 54) includes a first swipe 54A acrossdisplay 8 in a first, substantially leftward, direction and a second,subsequent swipe 54B in a second, substantially rightward, direction.Replacement gesture 54 may further include a touch down 55 (e.g., aninitial touch, tap, or other contact with a finger or other input toolon presence-sensitive display 8) and/or a touch up 57 (e.g., a releaseor lifting of the finger or other tool from the presence-sensitivedisplay 8). Although a specific example replacement gesture 54 is shownin FIG. 1, it shall be understood that other replacement gestures mayalso be used, and that the disclosure is not limited in this respect.

Replacement gesture module 10 includes instructions that, when executedby processor(s) 6 of computing device 2, permit detection of anyreplacement gestures (such as example replacement gesture 54) receivedat presence-sensitive display 8. Replacement gesture module 10 furtherincludes instructions that, when executed by processor(s) 6 of computingdevice 2, permit replacement of the text input with a character stringfrom the list of suggested character strings 23. For example, the textinput may be replaced with the first (highest ranked) character stringin the list of suggested alternative character strings. In FIG. 1, forexample, upon detection of example replacement gesture 54, computingdevice 2 may replace the text input, “lifr,” with the first characterstring in list of suggested character strings 23, “life.” Thus, afterdetection of example replacement gesture 54, display 8 may present animage such as example image 15B, in which the character string “lifr”has been replaced with the character string, “life.”

Keyboard gestures for text replacement may improve typing speed with auseful way for the user to replace misspelled or mistyped words withalternative character strings from a list of suggested characterstrings. Using a replacement gesture to replace the character string maysave the user time from having to delete characters or to retype thecharacter string. Keyboard gestures for text replacement may thereforehelp to improve text input speed, accuracy, and/or efficiency.

FIG. 2 is a block diagram illustrating an example computing device 2that includes text replacement gesture functionality. FIG. 2 illustratesone example of computing device 2, and many other examples of computingdevice 2 may be implemented. Example computing device 2 may include oneor more processor(s) 6, a communication unit(s) 34, storage device 35,one or more input device(s) 5, and one or more output device(s) 7. Thecomponents of computing device 2 may be interconnected (physically,communicatively, and/or operatively) by communication channels 32 forinter-component communications. Communication channels 32 may include asystem bus, network connection, interprocess communication datastructure, or any other channel for communicating data. Applications 11and operating system 40 may also communicate information with oneanother as well as with other components in computing device 2.

Computing device 2 may utilize communication unit 34 to communicate withexternal devices (not shown) via one or more networks, such as one ormore wireless networks. The external devices may include, for example,server computers, mobile phones, networked computing devices, etc.Communication unit 34 may include one or more of a network interfacecard, such as an Ethernet card, an optical transceiver, a radiofrequency (RF) transceiver, cellular network interface, or any othertype of device that can send and receive information. Examples ofwireless communication interfaces may include Bluetooth, RF, and Wi-Fi.Any applications implemented within or executed by computing device 2(e.g., applications 11) may be implemented or contained within, operableby, executed by, and/or be operatively coupled to processor(s) 6,communication unit 34, and/or storage device 35.

Computing device 2 may also include one or more input devices 5. Inputdevice 5, in some examples, is configured to receive input from a userthrough a graphical user interface using tactile, audio, or videofeedback. Examples of input device 5 include a presence-sensitivedisplay, touch screen, a mouse, a keyboard, a voice responsive system,video camera, microphone, or any other type of device for detecting orreceiving user input.

Computing device 2 may also include one or more output devices 7. Outputdevice 7 may be configured to provide output to a user at a graphicaluser interface (for example, user interface 4 in FIG. 1) using tactile,audio, or video stimuli. Output device 7 may include apresence-sensitive display, a sound card, a video graphics adapter card,or any other type of device for converting a signal into an appropriateform understandable to humans or machines. Additional examples of outputdevice 7 may include a speaker, a cathode ray tube (CRT) monitor, aliquid crystal display (LCD), or any other type of device that cangenerate user output.

In some examples, certain types of user interface devices may functionboth as an input device 5 and an output device 7. For example, apresence-sensitive display, such as display 8 of FIGS. 1 and 2, mayfunction both as an input device and an output device.

Computing device 2 may include additional components that, for clarity,are not shown in FIG. 2. For example, computing device 2 may include abattery to provide power to the components of computing device 2.Similarly, the components of computing device 2 shown in FIG. 2 may notbe included in every example of computing device 2. For instancecomputing device 2 may not, in all examples, include communication unit34.

Storage device 30 may include one or more devices used to store data orprograms on a temporary or permanent basis. For example, storage device30 may include a temporary memory, meaning that a primary purpose of atleast part of memory 30 is not long-term storage. Storage device 30 mayalso include volatile memory, meaning that at least part of storage 30does not maintain stored contents when the computing device is turnedoff. Examples of volatile memories include random access memories (RAM),dynamic random access memories (DRAM), static random access memories(SRAM), and other forms of volatile memories known in the art. Storagedevice 30 may also include non-volatile storage elements. Examples ofsuch non-volatile storage elements may include magnetic hard discs,optical discs, floppy discs, flash memories, or forms of electricallyprogrammable memories (EPROM) or electrically erasable and programmable(EEPROM) memories.

Storage device 30 may store applications 11, an operating system 40,user settings 38, and data storage 50. Operating system 40, for example,manages the overall operation of computing device 2, facilitatesinteraction between the various hardware components, and managesexecution of software/firmware applications. Data storage 50 may includeany data used, received, or generated by computing device 2. Usersettings 38 may include one or more settings that permit a user tocustomize computing device 2 as desired. User settings 38 may beconfigured as a database, flat file, table, tree, or other datastructure stored within storage device 30 of computing device 2. In someexamples, user settings 38 may be configured as separate datarepositories while, in other examples, they may be a part of a singledata repository.

Applications 11 may include one or more built-in applications that areloaded onto computing device 2 at the time of manufacture, and/or one ormore applications that are downloaded or programmed into computingdevice 2 at a later time. Applications 11 may include, for example, oneor more of web browsers, enterprise software, accounting software,office suites, graphics software, media players, word processingapplications, video games, music or video players, video or soundrecorders, camera applications, screen savers, social networkingapplications, messaging applications, photo management applications,navigation and/or mapping applications, calendar applications, telephoneapplications, banking applications, etc.

As shown in FIG. 2, storage device 30 further includes replacementgesture module 10, a keyboard module 12, a suggested character stringmodule 14, and a dictionary 52. As discussed above, replacement gesturemodule 10 includes instructions and data that, when executed byprocessor(s) 6, provides computing device 2 with text replacementgesture functionality. Keyboard module 12 includes instructions and datathat, when executed by processor(s) 6, permits computing device 2 topresent a virtual keyboard, such as keyboard 20 on a presence-sensitivedisplay 8 as shown in FIG. 1. Suggested character string list module 14,when executed by processor(s) 6, provides computing device 2 withfunctionality to generate and output for display a list of one or moresuggested character strings. Dictionary 52 may include, for example, aknown list of correctly spelled words. Suggested character string module14 may compare the text input against one or more of the words indictionary 52 to generate the list of suggested character strings. Insome examples, dictionary 52 may also include a list of user-customizedcharacter strings. Dictionary 52 may also include a list of commonlyencountered typos and/or commonly misspelled words and an associatedcorrect spelling of the word. Dictionary 52 may also include commonphrases or other word combinations. Dictionary 52 may also includegrammar, syntax, and/or word prediction data, or any other data used foranalyzing the text input and/or generating a list of suggested characterstrings.

To provide replacement gesture functionality, replacement gesture module10 includes instructions that when executed by processor(s) 6 ofcomputing device 2, permit computing device 2 to detect any replacementgestures (such as example replacement gesture 54) received by, forexample, user interface device 8. The replacement gesture may includeone or more movements detected by user interface device 8 that computingdevice 2 interprets as a command to perform the replacement function.For example, a user may enter a replacement gesture by sliding a fingeror other input device, such as a stylus, pen, brush, etc., across thepresence-sensitive display in a predefined pattern.

Replacement gesture module 10 includes replacement gesture datacorresponding to one or more predetermined replacement gestures. Forexample, a replacement gesture may include a plurality of points ofcontact entered in a predetermined pattern within a display area of userinterface device 8. To that end, the replacement gesture data mayinclude a set of ordered coordinates corresponding to the relative orderand position for each point of contact that makes up the replacementgesture. The replacement gesture data may further include relative timeinformation corresponding to each point of contact in the replacementgesture. The relative time information may be indicative of the relativetime at which the ordered points of contact should occur to beconsidered as part of a replacement gesture.

Touch input received by computing device 2 is analyzed by processor(s) 6under control of replacement gesture module 10 to identify whether anyof the touch input corresponds with a predetermined replacement gesture.For example, processor(s) 6 may compare the touch input with thereplacement gesture data to detect whether the touch input includes apredetermined replacement gesture.

Upon detection of a replacement gesture, processor(s) 6, under controlof replacement gesture module 10, may replace the displayed text inputwith a character string from the list of suggested character strings.For example, the text input displayed on user interface device 8 may bereplaced with the first (highest ranked) character string in the list ofsuggested character strings. In the example of FIG. 1, for example, inresponse to detection of replacement gesture 54, computing device 2 hasreplaced the text input “lifr” with the first character string in listof suggested character strings 23, “life,” as shown in image 15B.

In some examples, the position of the replacement gesture must bedetected within the text display area of the user interface device(e.g., within text display area 16 of FIG. 1). This may help todistinguish a replacement gesture from contact intended by the user toenter characters using the virtual keys of keyboard 20. In otherexamples, the position of the replacement gesture may be detectedanywhere within display area of user interface device 8. In thoseexamples, replacement gesture module 10 is able to distinguish betweencontact intended as a replacement gesture and contact intended for otherpurposes.

FIG. 3 is a flowchart illustrating an example process (100) or methodthat may be performed by or embodied in a computing device, such ascomputing device 2 of FIGS. 1 and/or 2, to implement text replacementgesture functionality. Process (100) is one example, and otherimplementations may include more or fewer aspects than those depicted inFIG. 3.

Computing device 2 may receive an indication of text input detected atan input device, such as a presence-sensitive display (102). Computingdevice 2 may output the text input for display at the presence-sensitivedisplay (110). For example, computing device 2 may output text input,such as text input 22 “lifr” at text display area 16 of image 15A asshown in FIG. 1.

Computing device 2 may output a list of one or more suggested characterstrings for display based on the text input (120). For example, thecomputing device may analyze the text input and generate a list of oneor more suggested character strings based on the analysis. Computingdevice may further output the list of suggested character strings, suchas the list of character strings 23, for display within image 15A asshown in FIG. 1.

Computing device 2 may receive an indication of gesture input at thepresence-sensitive display (130). Computing device 2 may analyze thereceived gesture input to identify whether any of the gesture inputcorresponds with one or more predetermined replacement gestures (140).For example, computing device 2 may compare the indication of thegesture input with replacement gesture data corresponding to one or morepredetermined replacement gestures. In one example, the replacementgesture data may define a replacement gesture that includes a firstswipe in a generally leftward direction and a second swipe in agenerally rightward direction, such as replacement gesture 54 shown inFIG. 1.

In some examples, in order for computing device to interpret detectedfirst and second swipes as a replacement gesture, the first swipe andthe second swipe must be detected within a predetermined period of time.The predetermined period of time may be, for example, in the range of 0to 1 second. In another example, in order for the computing device tointerpret the first and second swipes as a replacement gesture,computing device must not detect meaningful gesture movement for apredetermined period of time after the second swipe. In other examples,one or more alternative replacement gesture(s) may be detected inaddition to or alternatively to the specific replacement gesture shownin FIG. 1.

In response to detection of the replacement gesture (150), the computingdevice may replace the displayed text input with a replacement characterstring chosen from the list of suggested character strings (140). Forexample, responsive to receiving the indication of the replacementgesture, the computing device may replace the displayed text input withone of the character strings from the list of suggested characterstrings. In one example, the replacement character string may include afirst or highest ranked character string in the list of suggestedcharacter strings. The first or highest ranked character string may bethe character string having the highest probability of matching the textinput as determined by character string identification techniques knownin the art such as those used in spell checking, auto-correct, wordcompletion or word prediction applications. In some examples, list ofsuggested character strings may be presented in a ranked order ofprobability from the most likely (highest ranked) match to the textinput and descending to the least likely (lowest ranked) match to thetext input.

To replace the text input (160), the computing device may delete thedisplayed text input (e.g., text input “lifr” 22 as shown in FIG. 1) andoutput for display the replacement character string chosen from the listof suggested character strings (e.g., replacement character string“life” 24 as shown in FIG. 1).

The techniques described herein may be implemented in hardware,software, firmware, or any combination thereof. Various featuresdescribed as modules, units or components may be implemented together inan integrated logic device or separately as discrete but interoperablelogic devices or other hardware devices. In some cases, various featuresof electronic circuitry may be implemented as one or more integratedcircuit devices, such as an integrated circuit chip or chipset.

If implemented in hardware, this disclosure may be directed to anapparatus such a processor or an integrated circuit device, such as anintegrated circuit chip or chipset. Alternatively or additionally, ifimplemented in software or firmware, the techniques may be realized atleast in part by a computer-readable data storage medium comprisinginstructions that, when executed, cause a processor to perform one ormore of the methods described above. For example, the computer-readabledata storage medium may store such instructions for execution by aprocessor.

A computer-readable medium may form part of a computer program product,which may include packaging materials. A computer-readable medium maycomprise a computer data storage medium such as random access memory(RAM), read-only memory (ROM), non-volatile random access memory(NVRAM), electrically erasable programmable read-only memory (EEPROM),flash memory, magnetic, or optical data storage media, and the like. Insome examples, an article of manufacture may comprise one or morecomputer-readable storage media.

In some examples, the computer-readable storage media may comprisenon-transitory media. The term “non-transitory” may indicate that thestorage medium is not embodied in a carrier wave or a propagated signal.In certain examples, a non-transitory storage medium may store data thatcan, over time, change (e.g., in RAM or cache).

The code or instructions may be software and/or firmware executed byprocessing circuitry including one or more processors, such as one ormore digital signal processors (DSPs), general purpose microprocessors,application-specific integrated circuits (ASICs), field-programmablegate arrays (FPGAs), or other equivalent integrated or discrete logiccircuitry. Accordingly, the term “processor,” as used herein may referto any of the foregoing structure or any other structure suitable forimplementation of the techniques described herein. In addition, in someaspects, functionality described in this disclosure may be providedwithin software modules or hardware modules.

Various examples have been described. These and other examples arewithin the scope of the following claims.

What is claimed is:
 1. A method comprising: responsive to receiving anindication of a first user input, outputting, by the computing deviceand for display, text that is based on the first user input;determining, by the computing device and based at least in part on thefirst user input, a list of one or more suggested character strings;responsive to receiving an indication of a second user input,determining, by the computing device, whether the received second userinput includes a replacement gesture, wherein the replacement gestureincludes a first gesture in a first direction and a second gesture in asecond direction that is substantially opposite to the first direction;and responsive to determining that the received second user inputincludes the replacement gesture, outputting, by the computing deviceand for display, in place of the text, a character string from the listof one or more suggested character strings.
 2. The method of claim 1,wherein the character string from the list of one or more suggestedcharacter strings is ranked higher than at least one other characterstring from the list of one or more suggested character strings, thelist of one or more suggested character strings being organized in aranked order.
 3. The method of claim 1, wherein the first direction is asubstantially leftward direction and wherein the second direction is asubstantially rightward direction.
 4. The method of claim 3, wherein thefirst direction is substantially parallel with the second direction. 5.The method of claim 1, wherein the character string is a first characterstring in the list of one or more suggested character strings, whereinthe list of one or more suggested character strings is an ordered list.6. The method of claim 1, wherein the second gesture is receivedsubsequent to the first gesture.
 7. The method of claim 1, furthercomprising: ranking, by the computing device, the list of one or moresuggested character strings such that a highest-ranked character stringin the list of one or more suggested character strings is amost-probable match to the indication of the first user input.
 8. Themethod of claim 1, wherein the list of one or more suggested characterstrings is displayed in a ranked order.
 9. The method of claim 8,wherein the character string is a highest ranked character string fromthe list of one or more suggested character strings that are ranked inthe ranked order.
 10. The method of claim 1, wherein the replacementgesture is entered by a user at a presence-sensitive display that isoperatively coupled to the computing device.
 11. A device comprising: atleast one processor; and at least one module operable by the at leastone processor to: responsive to receiving an indication of a first userinput, output, for display, text that is based on the first user input;determine, based at least in part on the first user input, a list of oneor more suggested character strings; responsive to receiving anindication of a second user input, determine whether the received seconduser input includes a replacement gesture, wherein the replacementgesture includes a first gesture in a first direction, and a secondgesture in a second direction that is substantially opposite to thefirst direction; and responsive to determining that the received seconduser input includes the replacement gesture, output, for display, inplace of the text, a character string from the list of one or moresuggested character strings.
 12. The device of claim 11, wherein thecharacter string from the list of one or more suggested characterstrings is ranked higher than at least one other character string fromthe list of one or more suggested character strings, the list of one ormore suggested character strings being organized in a ranked order. 13.The device of claim 11, wherein the first direction is a substantiallyleftward direction and wherein the second direction is a substantiallyrightward direction.
 14. The device of claim 11, wherein the firstdirection is substantially parallel with the second direction.
 15. Thedevice of claim 11, wherein the list of one or more suggested characterstrings is displayed in a ranked order.
 16. A non-transitorycomputer-readable storage medium encoded with instructions that, whenexecuted, cause at least one processor of a computing device to performoperations comprising: responsive to receiving an indication of a firstuser input, outputting, for display, text that is based on the firstuser input; determining, based at least in part on the first user input,a list of one or more suggested character strings; responsive toreceiving an indication of a second user input, determining, whether thereceived second user input includes a replacement gesture, wherein thereplacement gesture includes a first gesture in a first direction and asecond gesture in a second direction that is substantially opposite tothe first direction; and responsive to determining that the receivedsecond user input includes the replacement gesture, outputting, fordisplay, in place of the text, a character string from the list of oneor more suggested character strings.
 17. The non-transitorycomputer-readable storage medium of claim 16, wherein the characterstring from the list of one or more suggested character strings isranked higher than at least one other character string from the list ofone or more suggested character strings, the list of one or moresuggested character strings being organized in a ranked order.
 18. Thenon-transitory computer-readable storage medium of claim 16, wherein thefirst direction is a substantially leftward direction and wherein thesecond direction is a substantially rightward direction.
 19. Thenon-transitory computer-readable storage medium of claim 16, wherein thefirst direction is substantially parallel with the second direction. 20.The non-transitory computer-readable storage medium of claim 16, whereinthe list of one or more suggested character strings is displayed in aranked order.